/*
 * Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/bigtable/admin/v2/bigtable_table_admin.proto

// Protobuf Java Version: 3.25.5
package com.google.bigtable.admin.v2;

public interface RestoreTableMetadataOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.bigtable.admin.v2.RestoreTableMetadata)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Name of the table being created and restored to.
   * </pre>
   *
   * <code>string name = 1;</code>
   *
   * @return The name.
   */
  java.lang.String getName();
  /**
   *
   *
   * <pre>
   * Name of the table being created and restored to.
   * </pre>
   *
   * <code>string name = 1;</code>
   *
   * @return The bytes for name.
   */
  com.google.protobuf.ByteString getNameBytes();

  /**
   *
   *
   * <pre>
   * The type of the restore source.
   * </pre>
   *
   * <code>.google.bigtable.admin.v2.RestoreSourceType source_type = 2;</code>
   *
   * @return The enum numeric value on the wire for sourceType.
   */
  int getSourceTypeValue();
  /**
   *
   *
   * <pre>
   * The type of the restore source.
   * </pre>
   *
   * <code>.google.bigtable.admin.v2.RestoreSourceType source_type = 2;</code>
   *
   * @return The sourceType.
   */
  com.google.bigtable.admin.v2.RestoreSourceType getSourceType();

  /**
   * <code>.google.bigtable.admin.v2.BackupInfo backup_info = 3;</code>
   *
   * @return Whether the backupInfo field is set.
   */
  boolean hasBackupInfo();
  /**
   * <code>.google.bigtable.admin.v2.BackupInfo backup_info = 3;</code>
   *
   * @return The backupInfo.
   */
  com.google.bigtable.admin.v2.BackupInfo getBackupInfo();
  /** <code>.google.bigtable.admin.v2.BackupInfo backup_info = 3;</code> */
  com.google.bigtable.admin.v2.BackupInfoOrBuilder getBackupInfoOrBuilder();

  /**
   *
   *
   * <pre>
   * If exists, the name of the long-running operation that will be used to
   * track the post-restore optimization process to optimize the performance of
   * the restored table. The metadata type of the long-running operation is
   * [OptimizeRestoreTableMetadata][]. The response type is
   * [Empty][google.protobuf.Empty]. This long-running operation may be
   * automatically created by the system if applicable after the
   * RestoreTable long-running operation completes successfully. This operation
   * may not be created if the table is already optimized or the restore was
   * not successful.
   * </pre>
   *
   * <code>string optimize_table_operation_name = 4;</code>
   *
   * @return The optimizeTableOperationName.
   */
  java.lang.String getOptimizeTableOperationName();
  /**
   *
   *
   * <pre>
   * If exists, the name of the long-running operation that will be used to
   * track the post-restore optimization process to optimize the performance of
   * the restored table. The metadata type of the long-running operation is
   * [OptimizeRestoreTableMetadata][]. The response type is
   * [Empty][google.protobuf.Empty]. This long-running operation may be
   * automatically created by the system if applicable after the
   * RestoreTable long-running operation completes successfully. This operation
   * may not be created if the table is already optimized or the restore was
   * not successful.
   * </pre>
   *
   * <code>string optimize_table_operation_name = 4;</code>
   *
   * @return The bytes for optimizeTableOperationName.
   */
  com.google.protobuf.ByteString getOptimizeTableOperationNameBytes();

  /**
   *
   *
   * <pre>
   * The progress of the
   * [RestoreTable][google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable]
   * operation.
   * </pre>
   *
   * <code>.google.bigtable.admin.v2.OperationProgress progress = 5;</code>
   *
   * @return Whether the progress field is set.
   */
  boolean hasProgress();
  /**
   *
   *
   * <pre>
   * The progress of the
   * [RestoreTable][google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable]
   * operation.
   * </pre>
   *
   * <code>.google.bigtable.admin.v2.OperationProgress progress = 5;</code>
   *
   * @return The progress.
   */
  com.google.bigtable.admin.v2.OperationProgress getProgress();
  /**
   *
   *
   * <pre>
   * The progress of the
   * [RestoreTable][google.bigtable.admin.v2.BigtableTableAdmin.RestoreTable]
   * operation.
   * </pre>
   *
   * <code>.google.bigtable.admin.v2.OperationProgress progress = 5;</code>
   */
  com.google.bigtable.admin.v2.OperationProgressOrBuilder getProgressOrBuilder();

  com.google.bigtable.admin.v2.RestoreTableMetadata.SourceInfoCase getSourceInfoCase();
}
